package com.zxtech.zzm.core.util

import android.text.TextUtils
import com.orhanobut.logger.AndroidLogAdapter
import com.orhanobut.logger.Logger

open class LoggerUtil {
  companion object {
    val LOGGERUTIL_VERBOSE = 1
    val LOGGERUTIL_DEBUG = 2
    val LOGGERUTIL_INFO = 3
    val LOGGERUTIL_WARNING = 4
    val LOGGERUTIL_ERROR = 5
    val LOGGERUTIL_ASSERT = 6
    val LOGGERUTIL_JSON = 7
    var inited = false
    val TAG = "zzm debug"
    fun log(msg: String) {
      log(msg, LOGGERUTIL_DEBUG)
    }

    fun log(
      msg: String,
      level: Int
    ) {
      log(TAG, msg, level)
    }

    fun log(
      tag: String,
      msg: String,
      level: Int
    ) {
      if (!inited) {
        Logger.addLogAdapter(AndroidLogAdapter())
        inited = true
      }
      if (TextUtils.isEmpty(msg)) {
        return
      }
      when (level) {
        LOGGERUTIL_VERBOSE -> Logger.t(tag)
            .v(msg)
        LOGGERUTIL_DEBUG -> Logger.t(tag)
            .d(msg)
        LOGGERUTIL_INFO -> Logger.t(tag)
            .v(msg)
        LOGGERUTIL_WARNING -> Logger.t(tag)
            .w(msg)
        LOGGERUTIL_ERROR -> Logger.t(tag)
            .e(msg)
        LOGGERUTIL_ASSERT -> Logger.t(tag)
            .wtf(msg)
        LOGGERUTIL_JSON -> Logger.t(tag)
            .json(msg)
        else -> Logger.t(tag)
            .d(msg)
      }
    }
  }
}